package com.xlzcx.xltz.utils;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

/**
 * 作者: 李咨辰
 * 文件名: RedisUtil.java
 * 路径: com.yuntu.redisdemo.demos.web
 * 时间: 2024-05-27 11:38
 * 版本: 1.0
 * 描述: TODO Redis
 **/
public class RedisUtil {
    public static Jedis getJedis() {
        JedisPool jedisPool = MyJedisPoolConfig.getJedisPool();
        return jedisPool.getResource();
    }

    /**
     * 判断是否存在
     *
     * @param key 健
     * @return 存在true 不存在false
     */
    public static Boolean exists(String key) {
        Jedis jedis = null;
        Boolean exists;
        try {
            jedis = getJedis();
            exists = jedis.exists(key);
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
        return exists;
    }

    /**
     * 添加内容
     *
     * @param key   健
     * @param value 值
     * @return 成功true 失败false
     */
    public static Boolean set(String key, String value) {
        Jedis jedis = null;
        String set;
        try {
            jedis = getJedis();
            set = jedis.set(key, value);
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
        return set.equals("OK");
    }

    /**
     * 通过健获取值
     *
     * @param key 健
     * @return 值
     */
    public static String get(String key) {
        Jedis jedis = null;
        String value;
        try {
            jedis = getJedis();
            value = jedis.get(key);
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
        return value;
    }

    /**
     * 设置过期时间
     *
     * @param key     健
     * @param seconds 时间(秒)
     * @return 成功多少条数据
     */
    public static int expire(String key, int seconds) {
        Jedis jedis = null;
        int set;
        try {
            jedis = getJedis();
            set = jedis.expire(key, seconds).intValue();
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
        return set;
    }

    /**
     * 查询剩余过期时间
     *
     * @param key 健
     * @return 时间(秒)
     */
    public static Integer getTTL(String key) {
        Jedis jedis = null;
        int set;
        try {
            jedis = getJedis();
            set = jedis.ttl(key).intValue();
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
        return set;
    }

    /**
     * 查询剩余过期时间
     *
     * @param key 健
     * @return 时间(秒)
     */
    public static Integer delKey(String key) {
        Jedis jedis = null;
        int set;
        try {
            jedis = getJedis();
            set = jedis.del(key).intValue();
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
        return set;
    }

}
